1. Field of the Invention
The present invention relates to computer systems and, more particularly, to novel systems and methods for generating a composite video signal from a plurality of independent video signals.
2. Discussion of the Related Art
The rendering of three-dimensional computer graphics is a computationally intensive process. In many high-end applications, three-dimensional computer graphics are rendered using a pool or cluster of computers, which share the processing responsibilities. In such a system, one computer may be configured to execute at least one application program and communicate graphics data to other computers for rendering. In this regard, a collection of computers may be configured to cooperatively render a graphics image and may receive the graphics data to be rendered from the computer executing the application program.
When multiple computers are used to render a single scene, the video signals generated by each of those computers are combined into a single aggregate (or composite) signal and encoded in a particular format, such as NTSC, PAL, etc. There exist devices called compositors that perform the function of combining (or compositing) multiple video signals into a single, composite video signal. Accordingly, there are known approaches for performing the functions of a compositor. One function that is performed by a compositor is the synchronizing of the multiple input video signals. On computers having high-end graphics cards, a genlock is often provided and used to perform this function. As is known, a genlock is a synchronization mechanism or technique that effectively eliminates independent time bases of various computer graphics systems, by using a phase-locked loop (PLL).
However, many graphics cards do not include a genlock mechanism. In such systems, other mechanisms are needed if multiple video signals are to be synchronized for compositing. One approach has been to provide sufficient memory within the compositor to triple-buffer the data received at each video input. Since there may be relatively disparate amounts of graphic data output from each of the individual computers that are rendering the graphic scene, for any given frame, a frame's worth of data may be output much more quickly from one of the computers than from others of the computers. Typically, triple-buffering this data has been found to provide sufficient buffering to prevent a loss of synchronization among the plurality of computers.
However, triple-buffering requires excessive memory and results in additional latency, due in part to the time required to read frames of data into the three buffers.